package com.example.common;

import lombok.Data;

/**
 * @author  guochao
 * @date  2022/1/6 20:56
 * @version 1.0
 */
@Data
public class Jr {
    /**
     * 状态
     */
    private boolean status;
    /**
     * 状态码
     */
    private int code;
    /**
     * 消息
     */
    private String message;
    /**
     * 数据
     */
    private Object data;

    public Jr(boolean status, int code) {
        this.status = status;
        this.code = code;
    }

    public Jr(boolean status, int code, String message) {
        this(status, code);
        this.message = message;
    }

    public Jr(boolean status, int code, Object data) {
        this(status, code);
        this.data = data;
    }

    public Jr(boolean status, int code, String message, Object data) {
        this(status, code, message);
        this.data = data;
    }

    /**
     * 正确返回
     *
     * @return
     */
    public static Jr yes() {
        return new Jr(true, 0);
    }

    /**
     * 正确返回，带提示消息
     *
     * @param data
     * @return
     */
    public static Jr yesm(Object data) {
        return new Jr(true, 0, data);
    }

    /**
     * 正确返回，带返回数据
     *
     * @param data
     * @return
     */
    public static Jr yesd(Object data) {
        return new Jr(true, 0, data);
    }

    /**
     * 正确返回，带提示消息和返回数据
     *
     * @param message
     * @param data
     * @return
     */
    public static Jr yes(String message, Object data) {
        return new Jr(true, 0, message, data);
    }

    /**
     * 错误返回
     *
     * @return
     */
    public static Jr no() {
        return new Jr(false, -1);
    }

    /**
     * 错误返回，带提示消息
     *
     * @param message
     * @return
     */
    public static Jr nom(String message) {
        return new Jr(false, -1, message);
    }

    /**
     * 错误返回，带返回数据
     *
     * @param data
     * @return
     */
    public static Jr nod(Object data) {
        return new Jr(false, -1, data);
    }

    /**
     * 错误返回，带状态码和提示消息
     *
     * @param code
     * @return
     */
    public static Jr no(int code, String message) {
        return new Jr(false, code, message);
    }

    /**
     * 错误返回，带提示消息和返回数据
     *
     * @param message
     * @param data
     * @return
     */
    public static Jr no(String message, Object data) {
        return new Jr(false, -1, message, data);
    }
}
